|
Date : 19 et 20 juin 1991 Protection : License d'attribution Programme : NORTON ANTI VIRUS V1.0.0 FRANCAIS NORTON ANTI VIRUS V1.5.0 ANGLAIS Outils : SOFT-ICE Fichier : NAV.EXE Temps pass� : 4 Heures Soci�t� : NORTON INC Divers : Origine : L.F. Num�ro : 095, 115 Un nom: < G�rard BUQUET > et < PEUGEOT > qui s'affichent avec la version du soft. Les 2 chaines sont cod�es et pas par un XOR de valeur identique mais un XOR qui prends la valeur du dernier caract�re XOR� pour le reporter sur le suivant. De plus les caract�res sont dispers�s dans le fichier. En d�roulant le programme au pas a pas, CALL apr�s CALL je m'aper�ois que c'est le CALL 41F1 qui affiche les 6 lignes � l'int�rieur du cadre. Les deux derni�res lignes affichent le nom et la soci�t�. L'id�e la plus simple est d'emp�cher l'affichage des deux derni�res lignes. 0E18:2626 E8C818 CALL 41F1 0E18:2629 83C406 ADD SP,+06 0E18:262C 83C608 ADD SI,+08 0E18:262F 47 INC DI ;s'incr�mente jusqu'� 6. 0E18:2630 C45E06 LES BX,[BP+06] 0E18:2633 26397F12 CMP ES[BX+12],DI ;teste si DI = 6 0E18:2637 7FB5 JG 25EE La position m�moire ES:[BX+12] contient bien 6, j'essaie de modifier l'instruction en comparant directement avec 6: CMP ES:[BX+12],06 mais ceci la rallonge d'un octet et plante ( naturellement ) tout. En examinant l'environnement de la position BX+12 je trouve en BX tout court un 04. Je d�cide donc de modifier mon instruction de telle fa�on qu'elle pointe sur cet octet: CMP ES:[BX],DI en pla�ant �galement un NOP apr�s cette instruction puisque cette fois elle se trouve �tre plus courte d'un octet. Et cel� fonctionne... exept� le menu ANALYSE qui affiche des caract�res exc�dentaires ! Ca fait tr�s mauvais effet. Apr�s v�rification cette routine est utilis�e �galement pour la suite du programme, il faut donc trouver le moyen sans modifier cette instruction de n'afficher que les 4 premi�res lignes. Je me tourne donc vers la provenance de cet octet 06. Avec un BPM 239C:060E W EQ 06 je me trouve dans le BIOS avec une instruction REPZ INSW ! Instruction strictement r�serv�e au 286 et 386, mais cel� est normal puisque l'on se trouve dans le BIOS. Cel� ne signifie qu'une chose; c'est que l'on transfert une zone de 512 octets du disque dur vers cette position m�moire. DX = 01F0 ( adresse disque dur ) CX = 0100 ( 256 mots � transf�rer vers ES:DI - �a fait un secteur ) DI = DI+2 ( on �crit donc des mots ) Il est d�s lors �vident que je vais retrouver la chaine telle qu'elle apparait dans ES:DI sur le disque dur probablement dans NAV.EXE. Un DUMP de la zone 239C:060C donne: 02 80 06 00 AE 05. Une recherche avec PCTOOLS trouve la chaine. La modification est faite et essay�e avec succ�s. Avec PCTOOLS chercher 02800600 et modifier l'octet 06 par 04. FREDDY |